/**
 * Copyright &copy; 2015-2020 <a href="http://www.easyhis.com/">easyhis</a> All rights reserved.
 */
package com.easy.eqianbao.web;

import com.easy.common.bean.Result;
import com.easy.core.web.BaseController;
import com.easy.eqianbao.entity.*;
import com.easy.eqianbao.service.EQianBaoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 楼幢Controller
 * @author waylen chi
 * @version 2017-09-25
 */
@Controller
@RequestMapping(value = "${apiPath}/eqianbao/")
public class EQianBaoController extends BaseController {

	@Autowired
	private EQianBaoService eQianBaoService;
	
	/**
	 * 添加企业账户
	 * {
	 "Email": "aa@qq.com",  //邮箱地址
	 "Mobile": "13677778888",  //手机号码
	 "Name": "大风车",  //(必填项)机构名称
	 "OrganType": "0",  //(必填项)单位类型，0-普通企业，1-社会团体，2-事业单位，3-民办非企业单位，4-党政及国家机构，默认0
	 "UserType": "0",  //(必填项)注册类型，1-代理人注册，2-法人注册，默认0
	 "OrganCode": "91330502MA28CFFP4H",  //组织机构代码号或社会信用代码号
	 "LegalName": "张三",  //法定代表姓名，当注册类型为2时必填
	 "LegalIdNo": "342921199010113219",  //法定代表身份证号，当注册类型为2时必填
	 "LegalArea": "0",  //法定代表人归属地,0-大陆，1-香港，2-澳门，3-台湾，4-外籍，默认0
	 "AgentName": "",  //代理人姓名，当注册类型为1时必填
	 "AgentIdNo": "",  //代理人身份证号，当注册类型为1时必填
	 "Address": "杭州市拱墅区乐富智汇园",  //公司地址
	 "Scope": "技术服务",   //经营范围
	 "RegType": "1",  //(必填项)企业注册类型（0--组织机构代码号、1--多证合一，2--工商注册码，默认组织机构代码号）

	 "LoginUserID": "7ac39abfdb94448abd948f8c871dc048",   //登录者ID

	 "EnterpriseTypeCode":"Q008" //企业登记注册类别code(从企业登录注册类别列表接口中获取)
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "AddOrganize")
	public Result AddOrganize(Organize organize, Model model) {
		return eQianBaoService.AddOrganize(organize);
	}


	/**
	 * 添加企业账户
	 * "Email": "aa@qq.com",  //邮箱地址
	 "Mobile": "13677778888",  //手机号码
	 "Name": "大风车",  //机构名称
	 "OrganType": "0",  //单位类型，0-普通企业，1-社会团体，2-事业单位，3-民办非企业单位，4-党政及国家机构，默认0
	 "UserType": "0",  //注册类型，1-代理人注册，2-法人注册，默认0
	 "LegalName": "张三",  //法定代表姓名，当注册类型为2时必填
	 "LegalIdNo": "342921199010113219",  //法定代表身份证号，当注册类型为2时必填
	 "LegalArea": "0",  //法定代表人归属地,0-大陆，1-香港，2-澳门，3-台湾，4-外籍，默认0
	 "AgentName": "",  //代理人姓名，当注册类型为1时必填
	 "AgentIdNo": "",  //代理人身份证号，当注册类型为1时必填
	 "Address": "杭州市拱墅区乐富智汇园",  //公司地址
	 "Scope": "技术服务",   //经营范围
	 "LoginUserID": "7ac39abfdb94448abd948f8c871dc048"   //登录者ID
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "UpdateOrganize")
	public Result UpdateOrganize(Organize organize, Model model) {
		return eQianBaoService.UpdateOrganize(organize);
	}

	/**
	 * 根据ID查询企业账户
	 *  "Email": "aa@qq.com",  //邮箱地址
	 "Mobile": "13677778888",  //手机号码
	 "Name": "大风车",  //机构名称
	 "OrganType": "0",  //单位类型，0-普通企业，1-社会团体，2-事业单位，3-民办非企业单位，4-党政及国家机构，默认0
	 "UserType": "0",  //注册类型，1-代理人注册，2-法人注册，默认0
	 "OrganCode": "91330502MA28CFFP4H",  //组织机构代码号或社会信用代码号
	 "LegalName": "张三",  //法定代表姓名，当注册类型为2时必填
	 "LegalIdNo": "342921199010113219",  //法定代表身份证号，当注册类型为2时必填
	 "LegalArea": "0",  //法定代表人归属地,0-大陆，1-香港，2-澳门，3-台湾，4-外籍，默认0
	 "AgentName": "",  //代理人姓名，当注册类型为1时必填
	 "AgentIdNo": "",  //代理人身份证号，当注册类型为1时必填
	 "Address": "杭州市拱墅区乐富智汇园",  //公司地址
	 "Scope": "技术服务",   //经营范围
	 "RegType": "1",  //企业注册类型（0--组织机构代码号、1--多证合一，2--工商注册码，默认组织机构代码号）
	 "AccountId":"7556C1F8C3D9433B8A51747A930DA081",   //e签宝账号ID
	 "SealData":"sample string 11",  //最终生成的电子印章图片Base64数据
	 "EnterpriseTypeCode":"Q002", //企业登记注册类别code
	 "IsDebt":"0",  //是否开通诚信赊(0-未开通，1-已开通)
	 "IsRealName":"0"  //0-未实名认证，1-已个人实名认证，2-已企业实名认证，12--已个人实名认证+已企业实名认证
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "OrganizeByID")
	public Result OrganizeByID(String userID, Model model) {
		return eQianBaoService.OrganizeByID(userID);
	}

	/**
	 * 根据ID查询企业账户
	 * accountId": "AA8884A2505E4A508866C9FB1E5155DA",  //e签宝账号ID
	 "templateType": "0",  //模板类型(0-标准公章,1-椭圆形印章)
	 "hText": "",   //生成印章中的横向文内容
	 "qText": ""   //生成印章中的下弦文内容
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "AddTemplateSeal")
	public Result AddTemplateSeal(TemplateSeal templateSeal, Model model) {
		return eQianBaoService.AddTemplateSeal(templateSeal);
	}

	/**
	 * 发送签署短信验证码
	 *
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "SendSignMobileCode")
	public Result SendSignMobileCode(String accountId, Model model) {
		return eQianBaoService.SendSignMobileCode(accountId);
	}



	/**
	 * 平台用户PDF摘要签署（短信验证）
	 * {
	 "accountId": "7556C1F8C3D9433B8A51747A930DA081",   //签署者账号标识
	 "sealData": "sample string 2",   //印章图片Base64
	 "srcPdfFile": "sample string 3",  //待签署PDF文档本地路径，含文档名
	 "dstPdfFile": "sample string 4",   //签署后PDF文档本地路径，含文档名
	 "PosType": "0",    //0-坐标定位，1-关键字定位
	 "PosPage": "1",  //签署页码，若为多页签章，支持页码格式“1-3,5,8“，若为坐标定位时，不可空
	 "PosX": "200",  //签署位置X坐标
	 "PosY": "500",  //签署位置Y坐标
	 "Key": "",  //关键字，仅限关键字签章时有效，若为关键字定位时，不可空
	 "signType": "1",  //签章类型（单页签章（1），多页签章（2），骑缝章（3），关键字签章（4））
	 "fileName": "sample string 11",  //文档名称
	 "ownerPassword": "",  //文档编辑密码，当目标PDF设置权限保护时必填
	 "code": "987632",   //短信验证码，必须通过e签宝接口发送
	 "LoginUserID": "39a91256-fe5f-4f47-8e6b-9bcd04392b15"  //用户ID
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "LocalSignPDFCustomer")
	public Result LocalSignPDFCustomer(SignPDFCustomer pDFCustomer, Model model) {
		return eQianBaoService.LocalSignPDFCustomer(pDFCustomer);
	}

	/**
	 * PDF文档验签
	 *
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "LocalVerifyPdf")
	public Result LocalVerifyPdf(String file, Model model) {
		return eQianBaoService.LocalVerifyPdf(file);
	}


	/**
	 * 拍+签
	 *
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "AddPhotoSign")
	public Result AddPhotoSign(PhotoSign photoSign, Model model) {
		return eQianBaoService.AddPhotoSign(photoSign);
	}


	/**
	 * 根据用户ID查询拍+签信息
	 *{
	 "userID": "sample string 1",  //签署者ID
	 "photoPath": "sample string 2",  //拍+签保存路径
	 "sealData": "sample string 3"  //拍+签图片base64数据
	 "docuCode": "sample string 4", //文档编号
	 "docuName": "sample string 5"  //文档名称
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "PhotoSignByID")
	public Result PhotoSignByID(String userID, Model model) {
		return eQianBaoService.PhotoSignByID(userID);
	}


	/**
	 * 企业根据ID查询自己模板印章
	 *{
	 "AccountId": "sample string 2",  //e签宝账号ID
	 "sealData": "sample string 3"  //最终生成的电子印章图片Base64数据
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "OrganizeSealDataByID")
	public Result OrganizeSealDataByID(String userID, Model model) {
		return eQianBaoService.OrganizeSealDataByID(userID);
	}


	/**
	 * 添加文档信息
	 *{
	 "code": "H00001",  //文档编号
	 "name": "测试",  //文档名称
	 "srcFileUrl": "D:\documentPdf\20171018\测试198.pdf",  //待签署文档路径
	 "dstFileUrl": "sample string 5",  //签署后文档路径
	 "IsManualSign": "0",  //0-未拍+签，1--已拍+签
	 "IsCompanySeal": "0"  //0--未盖公司印章，1--已盖公司印章
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "AddDocument")
	public Result AddDocument(Document document, Model model) {
		return eQianBaoService.AddDocument(document);
	}
	/**
	 * 根据文档编号获取文档信息
	 *{
	 "ID": "1",  //主键ID
	 "code": "H00001",  //文档编号
	 "name": "测试",  //文档名称
	 "srcFileUrl": "D:\documentPdf\20171018\测试198.pdf",  //待签署文档路径
	 "dstFileUrl": "sample string 5",  //签署后文档路径
	 "IsManualSign": "0",  //0-未拍+签，1--已拍+签
	 "IsCompanySeal": "0"  //0--未盖公司印章，1--已盖公司印章
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "DocumentByID")
	public Result DocumentByID(String code, Model model) {
		return eQianBaoService.DocumentByID(code);
	}

	/**
	 * 发送签署短信验证码
	 *{
	 "code": "H00001",  //文档编号
	 "dstFileUrl": "sample string 5",  //签署后文档路径
	 "IsManualSign": "0",  //0-未拍+签，1--已拍+签
	 "IsCompanySeal": "0"  //0--未盖公司印章，1--已盖公司印章
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "UpdateDocument")
	public Result UpdateDocument(Document document, Model model) {
		return eQianBaoService.UpdateDocument(document);
	}

	/**
	 * 更新是否实名认证
	 *{
	 "LoginUserID": "sample string 15",  //用户ID
	 "IsRealName": "2"  //0-未实名认证，1-已个人实名认证，2-已企业实名认证，12--已个人实名认证+已企业实名认证
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "UpdateIsRealName")
	public Result UpdateIsRealName(String LoginUserID,String IsRealName, Model model) {
		return eQianBaoService.UpdateIsRealName(LoginUserID,IsRealName);
	}

	/**
	 * 更新是否实名认证
	 *{
	 "LoginUserID": "sample string 15",  //用户ID
	 "IsRealName": "2"  //0-未实名认证，1-已个人实名认证，2-已企业实名认证，12--已个人实名认证+已企业实名认证
	 }
	 */
	//@RequiresPermissions("i3:i3Build:list")
	@ResponseBody
	@RequestMapping(value = "LocalSignPDF")
	public Result LocalSignPDF(SignPDFCustomer pDFCustomer, String IsRealName, Model model) {
		return eQianBaoService.LocalSignPDF(pDFCustomer);
	}
}